package website.haicheng.cloudauth.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import website.haicheng.cloudauth.dto.RoleInfoDto;
import website.haicheng.cloudauth.entity.RoleInfo;
import website.haicheng.cloudauth.vo.RoleVo;
import website.haicheng.core.base.BaseQueryEntity;

import java.util.Set;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author 582895699@qq.com
 * @since 2021-02-10
 */
public interface IRoleInfoService extends IService<RoleInfo> {
    /**
     * 用户Id获取角色名称
     *
     * @param userId
     * @return Set<String>
     */
    Set<String> listRoleName(int userId);

    /**
     * 角色分页
     *
     * @param queryEntity
     * @return
     */
    IPage<RoleInfo> pageRoles(BaseQueryEntity queryEntity);

    /**
     * 添加角角色
     *
     * @param dto
     * @param createBy
     */
    void addRole(RoleInfoDto dto, String createBy);

    /**
     * 修改角色
     *
     * @param dto
     * @param modifyBy
     */

    void updateRole(RoleInfoDto dto, String modifyBy);

    /**
     * 删除角色
     *
     * @param id
     * @param modifyBy
     */
    void delRole(long id, String modifyBy);

    /**
     * 通过角色id获取角色信息和对于的权限
     *
     * @param id
     * @return
     */
    RoleVo getRoleAndPermission(long id);
}
